// 1.如果字符串长度小于2，返回原字符串
// 2.定义两个变量，一个start储存当前找到的回文字符串的起始位置，maxLength记录字符串长度
// 3.创建一个function，判断左节点和右节点是否越界且左节点是否等于右节点，
// 当满足三个条件时更新start和maxLength，left--,reght++。一直循环，直到不满足上述条件。
// 4.遍历字符串，为个位置调用function两次;第一次(i-1,i+1),第二次(i,i+1)

/**
 * @param {string} s
 * @return {string}
 */
var longestPalindrome = function (s) {
  if (s.length < 2) {
    return s
  }

  let start = 0, maxLength = 1;
  function expandAroundCenter(left, right) {

    while (!(left < 0) && right < s.length && s[left] === s[right]) {

      if (right - left + 1 > maxLength) {
        maxLength = right - left + 1
        start = left
      }
      left--;
      right++;
    }
  }

  for (let i = 0; i < s.length; i++) {
    expandAroundCenter(i - 1, i + 1)
    expandAroundCenter(i, i + 1)
  }

  return s.substring(start, start + maxLength)
};